﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SushiSOAPServices.Dominio;
using NHibernate;
using System.Data.SqlClient;

namespace SushiSOAPServices.Persistencia
{
    public class ProductoDAO : BaseDAO<Producto, int>
    {
        public int validarProductoEnPedidos(int idproducto)
        {
            string sentenciaSQL = "select COUNT(1) from PEDIDO P INNER JOIN DETALLE_PEDIDO DP ON P.IDPEDIDO = DP.IDPEDIDO WHERE P.Estado='PEND' AND DP.IdProducto= " + idproducto;
            object valida = "0";
            using (SqlConnection conn = new SqlConnection(ConexionUtil.ObtenerCadena()))
            {
                conn.Open();
                using (SqlCommand comm = new SqlCommand(sentenciaSQL, conn))
                {
                    valida = comm.ExecuteScalar();
                }
            }

            return (int)valida;
        }

        public Producto obtenerProductoPorNombre(string nombre)
        {

            using (ISession sesion = NHibernateHelper.ObtenerSesion())
            {
                string sentenciaSQL = "select u from Producto as u where u.Nombre = :nom";
                IQuery query = sesion.CreateQuery(sentenciaSQL);
                query.SetParameter("nom", nombre);

                if (query.List<Producto>().Count != 0)
                {
                    IList<Producto> lista = query.List<Producto>();
                    return lista[0];
                }
                else
                {
                    Producto producto = null;
                    return producto;
                }
               

                //if (lista.Count == 0)
                //{
                //    Producto producto = null;
                //    return producto;
                //}
                //else
                //{
                //    return lista[0];
                //}


            }

        }

    }
}